package com.lzy.cloud.permission.service;

import com.github.pagehelper.PageInfo;
import com.lzy.cloud.permission.dtos.ResourceDto;
import com.lzy.framework.core.orm.db.Pager;

import java.util.List;
import java.util.Map;

/**
 * Created by WIN7 on 2018/5/16.
 */
public interface ResourceService {
    /**
     * 根据父节点获取 - 所有子节点
     * @param resourceDto
     * @return 集合资源
     */
    List<ResourceDto> selectAllResource(ResourceDto resourceDto);

    /**
     * 根据ID号获取资源
     *
     * @param id
     * **/
    ResourceDto selectByPrimaryKey(Long id);

    /**
     * 获取该节点下的子节点
     * @param pager
     * @param resourceDto
     * @return
     */
    PageInfo<ResourceDto> queryResourceByParentId(Pager pager, ResourceDto resourceDto);

    /**
     * 新增资源
     *
     * @param resourceDto
     * @return
     **/
    Boolean insert(ResourceDto resourceDto);

    /**
     * 更新资源
     * @param resourceDto
     * @return
     */
    Boolean update(ResourceDto resourceDto) ;

    /**
     * 删除资源
     * @param id
     * **/
    Boolean deleteById(Long id) ;

    /**
     * 根据条件查询单个资源
     * @param resourceDto
     * @return
     */
    ResourceDto selectResource(ResourceDto resourceDto);

    /**
     * 根据条件查询资源列表
     * @param resourceDto
     * @return
     */
    List<ResourceDto> selectList(ResourceDto resourceDto);

    /**
     * 根据条件（Map）查询列表
     * @param params
     * @return
     */
    List<ResourceDto> selectByIds(Map<String, Object> params);

    /**
     * 计算该节点下 - 一级子节点的数量
     * @param map
     * @return
     */
    Integer countByIds(	Map<String, Object> map);
}
